<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>react-demo-04</title>
  </head>
  <style lang="scss">
    .title {
      display: inline-flex;
      border: 1px solid blue;
      border-radius: 3px;
    }
  </style>
  <body>
    <!-- 准备容器 -->
    <div id="main"></div>

    <!-- 引入react核心库 -->
    <script
      type="text/javascript"
      src="https://cdn.bootcdn.net/ajax/libs/react/17.0.2/umd/react.development.js"
    ></script>
    <!-- 引入react-dom，用于操作dom -->
    <script
      type="text/javascript"
      src="https://cdn.bootcdn.net/ajax/libs/react-dom/17.0.2/umd/react-dom.development.js"
    ></script>
    <!-- 引入babel，用于编译jsx -->
    <script src="https://cdn.bootcdn.net/ajax/libs/babel-standalone/6.26.0/babel.min.js"></script>

    <!-- 此处一定要写babel，用于提示babel对该内容进行编译 -->
    <script type="text/babel">
      const myId = 'xmo';
      const myData = 'Hello React jsx';
      // 1. 创建虚拟Dom
      const VDom = (
        <div>
          <h2 id={myId} className="title">
            <span style={{ color: 'purple', fontSize: '2rem' }}>{myData}</span>
          </h2>
          <input type="text" />
        </div>
      );

      // 2. 渲染虚拟Dom到页面
      ReactDOM.render(VDom, document.getElementById('main'));

      /**
       * 定义虚拟Dom的时候，不能用引号；
       * 对于变量，使用 {} 进行引用；
       * 样式的类名指定不要用class，而是用className；
       * jsx 必须指定一个根元素；
       * 标签首字母，若小写字母开头，则将该标签转为html中同名元素，若无同名元素，则报错
       * 若为大写字母，则视作组件变量。
       **/
    </script>
  </body>
</html>
